1. Field of the Invention
The present invention relates to the field of computer systems. More specifically, the present invention relates to disk block allocation optimization methodology in an environment where the file system""s cluster size is greater than the operating system""s memory page size.
2. Background Information
In the art of computer systems, many problems involve optimizing disk block allocations. For example, in the past decade, performance of microprocessor based computer systems have increased dramatically. In particular, the operating speed of microprocessors has increased from the meager 16 MHz to well over 500 MHz. This trend is expected to continue without abatement. Correspondingly, while not as dramatic, performance of system and input/output (I/O) buses have also improved substantially, ensuring the microprocessors have adequate data to work with and kept busy. However, except for the improvement provided by buffering etc., the performance of disk drives has lagged behind. As a result, users are often deprived of the full benefit of the increased performance by the microprocessors. For example, when starting up an application or booting up an operating system, because the large majority of time is often spent on loading the application or operating system routines into memory from a disk drive, a user often does not see an appreciable difference in performance between a system equipped with a 200 MHz microprocessor or a 400 MHz microprocessor. Thus, further improvement in disk drive performance is desirable, and as will be disclosed in more detail below, the present invention provides the desired improvement in disk drive performance as well as other desirable results, which will be readily apparent to those skilled in the art, upon reading the detailed description to follow.
An apparatus is equipped with a device driver having a caching and pre-fetch function that selectively pre-fetches and cache data stored in disk blocks to facilitate operation with a file system having file clusters with a cluster size greater than an underlying operating system""s memory page size. The apparatus is further equipped with a disk block allocation optimization function to generate a new set of disk blocks to reallocate disk blocks for file system clusters accessed by a sequence of file accesses of interest to improve the overall access time for these file system clusters. The disk block allocation optimization function is equipped to generate the new set of disk blocks, accounting for the selective pre-fetches performed to accommodate the file system.